import axios from 'axios';
import config from '@/config/appConfig';

// 创建一个 axios 实例
const instance = axios.create({
  baseURL: config.baseUrl, // 设置请求的基础URL
  timeout: config.timeout, // 设置请求超时时间
});

// 请求拦截器
instance.interceptors.request.use(
  config => {
    // 在发送请求之前做些什么，例如添加 token 到请求头
    const token = localStorage.getItem('token');
    // 打印请求地址
    console.log('请求地址:', config.baseURL + config.url);
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    console.log(config);
    return config;
  },
  error => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 响应拦截器
instance.interceptors.response.use(
  response => {
    // 对响应数据做点什么
    return response.data;
  },
  error => {
    // 对响应错误做点什么
    if (error.response) {
      // 根据响应状态码进行不同的处理
      // switch (error.response.status) {
      //   case 401:
      //     // 处理未授权的情况，例如跳转到登录页面
      //     console.error('未授权，请登录');
      //     // 可以在这里添加跳转到登录页面的逻辑
      //     break;
      //   case 403:
      //     // 处理权限不足的情况
      //     console.error('权限不足');
      //     break;
      //   case 404:
      //     // 处理请求的资源不存在的情况
      //     console.error('请求的资源不存在');
      //     break;
      //   default:
      //     // 处理其他错误
      //     console.error('请求失败', error.response.status, error.response.data);
      // }
    } else {
      // 处理网络错误或其他未知错误
      console.error('网络错误', error.message);
    }
    return Promise.reject(error);
  }
);

export default instance;
